Skip to main content

Context Accounts

Git Source

State-changing Instructions

Claim

Write account: the signer of the claim who will pay the claim fee.

pub claimer: Signer<'info>,

Read account: the recipient of the airdrop.

pub recipient: UncheckedAccount<'info>,

Create if needed account: the ATA for airdrop token owned by the recipient.

pub recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Write account: the treasury account that will receive the claim fee.

pub treasury: Box<Account<'info, Treasury>>,

Read account: the mint account of the airdrop token.

pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,

Write account: the account storing the campaign data.

pub campaign: Box<Account<'info, Campaign>>,

Write account: the campaign's ATA for the airdrop token.

pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Create account: the claim receipt.

pub claim_receipt: Box<Account<'info, ClaimReceipt>>,

Program account: the Token program of the airdrop token.

pub airdrop_token_program: Interface<'info, TokenInterface>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Read account: The Chainlink program used to retrieve on-chain price feeds.

pub chainlink_program: AccountInfo<'info>,

Read account: The account providing the SOL/USD price feed data.

pub chainlink_sol_usd_feed: AccountInfo<'info>,

Program account: the System program.

pub system_program: Program<'info, System>,

Clawback

Write account: the campaign creator who will claw back the tokens.

pub campaign_creator: Signer<'info>,

Read account: the clawback recipient.

pub clawback_recipient: UncheckedAccount<'info>,

Create if needed account: the clawback recipient's ATA for the airdrop token.

pub clawback_recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Read account: the mint account of the airdrop token.

pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,

Read account: the account storing the campaign data.

pub campaign: Box<Account<'info, Campaign>>,

Write account: the campaign's ATA for the airdrop token.

pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Program account: the Token program of the airdrop token.

pub airdrop_token_program: Interface<'info, TokenInterface>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Program account: the System program.

pub system_program: Program<'info, System>,

CollectFees

Write account: the account authorized to collect fees from the treasury.

pub fee_collector: Signer<'info>,

Write account: the address that will receive the collected fees.

pub fee_recipient: UncheckedAccount<'info>,

Write account: the treasury account that holds the fees.

pub treasury: Box<Account<'info, Treasury>>,

CreateCampaign

Write account: the creator of the campaign.

pub creator: Signer<'info>,

Read account: the mint account of the airdrop token.

pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,

Create account: the account storing the campaign data.

pub campaign: Box<Account<'info, Campaign>>,

Create account: the campaign's ATA for the airdrop token.

pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Program account: the Token program of the airdrop token.

pub airdrop_token_program: Interface<'info, TokenInterface>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Program account: the System program.

pub system_program: Program<'info, System>,

Initialize

Write account: the initializer of the program.

pub initializer: Signer<'info>,

Create account: the treasury account that will hold the fees.

pub treasury: Box<Account<'info, Treasury>>,

Program account: the System program.

pub system_program: Program<'info, System>,

Read-only Instructions

CampaignView

Read account: the account storing the campaign data.

pub campaign: Box<Account<'info, Campaign>>,

ClaimFeeInLamports

Read account: the treasury account that receives the claim fee.

pub treasury: Box<Account<'info, Treasury>>,

Read account: The Chainlink program used to retrieve on-chain price feeds.

pub chainlink_program: AccountInfo<'info>,

Read account: The account providing the SOL/USD price feed data.

pub chainlink_sol_usd_feed: AccountInfo<'info>,

HasClaimed

Read account: the account storing the campaign data.

pub campaign: Box<Account<'info, Campaign>>,

Read account: the claim receipt.

pub claim_receipt: UncheckedAccount<'info>,

TreasuryView

Read account: the account storing the treasury details.

pub treasury: Box<Account<'info, Treasury>>,